+2001-02-28 Havoc Pennington <hp@redhat.com>
+
+ * gtk/gtkwidget.h (struct _GtkWidgetClass): Remove draw_focus and
+ draw_default
+ (gtk_widget_draw_focus): remove this function; we could instead
+ make it just gtk_widget_draw(), but in most cases I think the
+ result would be broken user code, so think it's better to have
+ that code not compile and get fixed
+ (gtk_widget_draw_default): ditto
+
+ * gtk/gtkwidget.c: Add default handlers for focus_in_event and
+ focus_out_event that set/unset GTK_HAS_FOCUS and call queue_draw
+
+ * gtk/gtkwindow.c (gtk_window_set_default): just queue a draw when
+ widgets lose/get the default, instead of calling draw_default
+
+ * docs/Changes-2.0.txt: note about all this
+
+ Then fixed every widget in GTK, I won't list all the filenames.
+
Tue Feb 27 19:32:53 2001 Jonathan Blandford <jrb@redhat.com>
* gtk/gtktreemodel.c (deleted_callback): Proxy out to
+2001-02-28 Havoc Pennington <hp@redhat.com>
+
+ * gtk/gtkwidget.h (struct _GtkWidgetClass): Remove draw_focus and
+ draw_default
+ (gtk_widget_draw_focus): remove this function; we could instead
+ make it just gtk_widget_draw(), but in most cases I think the
+ result would be broken user code, so think it's better to have
+ that code not compile and get fixed
+ (gtk_widget_draw_default): ditto
+
+ * gtk/gtkwidget.c: Add default handlers for focus_in_event and
+ focus_out_event that set/unset GTK_HAS_FOCUS and call queue_draw
+
+ * gtk/gtkwindow.c (gtk_window_set_default): just queue a draw when
+ widgets lose/get the default, instead of calling draw_default
+
+ * docs/Changes-2.0.txt: note about all this
+
+ Then fixed every widget in GTK, I won't list all the filenames.
+
Tue Feb 27 19:32:53 2001 Jonathan Blandford <jrb@redhat.com>
* gtk/gtktreemodel.c (deleted_callback): Proxy out to
+2001-02-28 Havoc Pennington <hp@redhat.com>
+
+ * gtk/gtkwidget.h (struct _GtkWidgetClass): Remove draw_focus and
+ draw_default
+ (gtk_widget_draw_focus): remove this function; we could instead
+ make it just gtk_widget_draw(), but in most cases I think the
+ result would be broken user code, so think it's better to have
+ that code not compile and get fixed
+ (gtk_widget_draw_default): ditto
+
+ * gtk/gtkwidget.c: Add default handlers for focus_in_event and
+ focus_out_event that set/unset GTK_HAS_FOCUS and call queue_draw
+
+ * gtk/gtkwindow.c (gtk_window_set_default): just queue a draw when
+ widgets lose/get the default, instead of calling draw_default
+
+ * docs/Changes-2.0.txt: note about all this
+
+ Then fixed every widget in GTK, I won't list all the filenames.
+
Tue Feb 27 19:32:53 2001 Jonathan Blandford <jrb@redhat.com>
* gtk/gtktreemodel.c (deleted_callback): Proxy out to
+2001-02-28 Havoc Pennington <hp@redhat.com>
+
+ * gtk/gtkwidget.h (struct _GtkWidgetClass): Remove draw_focus and
+ draw_default
+ (gtk_widget_draw_focus): remove this function; we could instead
+ make it just gtk_widget_draw(), but in most cases I think the
+ result would be broken user code, so think it's better to have
+ that code not compile and get fixed
+ (gtk_widget_draw_default): ditto
+
+ * gtk/gtkwidget.c: Add default handlers for focus_in_event and
+ focus_out_event that set/unset GTK_HAS_FOCUS and call queue_draw
+
+ * gtk/gtkwindow.c (gtk_window_set_default): just queue a draw when
+ widgets lose/get the default, instead of calling draw_default
+
+ * docs/Changes-2.0.txt: note about all this
+
+ Then fixed every widget in GTK, I won't list all the filenames.
+
Tue Feb 27 19:32:53 2001 Jonathan Blandford <jrb@redhat.com>
* gtk/gtktreemodel.c (deleted_callback): Proxy out to
+2001-02-28 Havoc Pennington <hp@redhat.com>
+
+ * gtk/gtkwidget.h (struct _GtkWidgetClass): Remove draw_focus and
+ draw_default
+ (gtk_widget_draw_focus): remove this function; we could instead
+ make it just gtk_widget_draw(), but in most cases I think the
+ result would be broken user code, so think it's better to have
+ that code not compile and get fixed
+ (gtk_widget_draw_default): ditto
+
+ * gtk/gtkwidget.c: Add default handlers for focus_in_event and
+ focus_out_event that set/unset GTK_HAS_FOCUS and call queue_draw
+
+ * gtk/gtkwindow.c (gtk_window_set_default): just queue a draw when
+ widgets lose/get the default, instead of calling draw_default
+
+ * docs/Changes-2.0.txt: note about all this
+
+ Then fixed every widget in GTK, I won't list all the filenames.
+
Tue Feb 27 19:32:53 2001 Jonathan Blandford <jrb@redhat.com>
* gtk/gtktreemodel.c (deleted_callback): Proxy out to
+2001-02-28 Havoc Pennington <hp@redhat.com>
+
+ * gtk/gtkwidget.h (struct _GtkWidgetClass): Remove draw_focus and
+ draw_default
+ (gtk_widget_draw_focus): remove this function; we could instead
+ make it just gtk_widget_draw(), but in most cases I think the
+ result would be broken user code, so think it's better to have
+ that code not compile and get fixed
+ (gtk_widget_draw_default): ditto
+
+ * gtk/gtkwidget.c: Add default handlers for focus_in_event and
+ focus_out_event that set/unset GTK_HAS_FOCUS and call queue_draw
+
+ * gtk/gtkwindow.c (gtk_window_set_default): just queue a draw when
+ widgets lose/get the default, instead of calling draw_default
+
+ * docs/Changes-2.0.txt: note about all this
+
+ Then fixed every widget in GTK, I won't list all the filenames.
+
Tue Feb 27 19:32:53 2001 Jonathan Blandford <jrb@redhat.com>
* gtk/gtktreemodel.c (deleted_callback): Proxy out to
+2001-02-28 Havoc Pennington <hp@redhat.com>
+
+ * gtk/gtkwidget.h (struct _GtkWidgetClass): Remove draw_focus and
+ draw_default
+ (gtk_widget_draw_focus): remove this function; we could instead
+ make it just gtk_widget_draw(), but in most cases I think the
+ result would be broken user code, so think it's better to have
+ that code not compile and get fixed
+ (gtk_widget_draw_default): ditto
+
+ * gtk/gtkwidget.c: Add default handlers for focus_in_event and
+ focus_out_event that set/unset GTK_HAS_FOCUS and call queue_draw
+
+ * gtk/gtkwindow.c (gtk_window_set_default): just queue a draw when
+ widgets lose/get the default, instead of calling draw_default
+
+ * docs/Changes-2.0.txt: note about all this
+
+ Then fixed every widget in GTK, I won't list all the filenames.
+
Tue Feb 27 19:32:53 2001 Jonathan Blandford <jrb@redhat.com>
* gtk/gtktreemodel.c (deleted_callback): Proxy out to
- GdkColorContext is gone; you probably weren't using it anyway.
Use GdkColormap and the gdk_rgb_* functions instead.
+
+- The draw_default and draw_focus methods/signals on GtkWidget are
+ gone; simply draw things in your expose handler.
+ gtk_widget_draw_focus() and gtk_widget_draw_default() wrapper
+ functions are also gone; just queue a draw on the widget,
+ or the part affected by the focus/default anyway.
+
+ Also, GtkWidget now has default implementations for focus_in_event
+ and focus_out_event. These set/unset GTK_HAS_FOCUS, and queue a
+ draw. So if your focus in/out handler just does that, you can delete
+ it.
GtkAllocation *allocation);
static void gtk_button_paint (GtkWidget *widget,
GdkRectangle *area);
-static void gtk_button_draw_focus (GtkWidget *widget);
-static void gtk_button_draw_default (GtkWidget *widget);
static gint gtk_button_expose (GtkWidget *widget,
GdkEventExpose *event);
static gint gtk_button_button_press (GtkWidget *widget,
GdkEventCrossing *event);
static gint gtk_button_leave_notify (GtkWidget *widget,
GdkEventCrossing *event);
-static gint gtk_button_focus_in (GtkWidget *widget,
- GdkEventFocus *event);
-static gint gtk_button_focus_out (GtkWidget *widget,
- GdkEventFocus *event);
static void gtk_button_add (GtkContainer *container,
GtkWidget *widget);
static void gtk_button_remove (GtkContainer *container,
object_class->get_arg = gtk_button_get_arg;
widget_class->realize = gtk_button_realize;
- widget_class->draw_focus = gtk_button_draw_focus;
- widget_class->draw_default = gtk_button_draw_default;
widget_class->size_request = gtk_button_size_request;
widget_class->size_allocate = gtk_button_size_allocate;
widget_class->expose_event = gtk_button_expose;
widget_class->button_release_event = gtk_button_button_release;
widget_class->enter_notify_event = gtk_button_enter_notify;
widget_class->leave_notify_event = gtk_button_leave_notify;
- widget_class->focus_in_event = gtk_button_focus_in;
- widget_class->focus_out_event = gtk_button_focus_out;
container_class->add = gtk_button_add;
container_class->remove = gtk_button_remove;
}
}
-static void
-gtk_button_draw_focus (GtkWidget *widget)
-{
- gtk_widget_draw (widget, NULL);
-}
-
-static void
-gtk_button_draw_default (GtkWidget *widget)
-{
- gtk_widget_draw (widget, NULL);
-}
-
static gint
gtk_button_expose (GtkWidget *widget,
GdkEventExpose *event)
return FALSE;
}
-static gint
-gtk_button_focus_in (GtkWidget *widget,
- GdkEventFocus *event)
-{
- g_return_val_if_fail (widget != NULL, FALSE);
- g_return_val_if_fail (GTK_IS_BUTTON (widget), FALSE);
- g_return_val_if_fail (event != NULL, FALSE);
-
- GTK_WIDGET_SET_FLAGS (widget, GTK_HAS_FOCUS);
- gtk_widget_draw_focus (widget);
-
- return FALSE;
-}
-
-static gint
-gtk_button_focus_out (GtkWidget *widget,
- GdkEventFocus *event)
-{
- g_return_val_if_fail (widget != NULL, FALSE);
- g_return_val_if_fail (GTK_IS_BUTTON (widget), FALSE);
- g_return_val_if_fail (event != NULL, FALSE);
-
- GTK_WIDGET_UNSET_FLAGS (widget, GTK_HAS_FOCUS);
- gtk_widget_draw_focus (widget);
-
- return FALSE;
-}
-
static void
gtk_button_add (GtkContainer *container,
GtkWidget *widget)
GdkEventCrossing *event);
static gint gtk_calendar_key_press (GtkWidget *widget,
GdkEventKey *event);
-static gint gtk_calendar_focus_in (GtkWidget *widget,
- GdkEventFocus *event);
-static gint gtk_calendar_focus_out (GtkWidget *widget,
- GdkEventFocus *event);
static void gtk_calendar_state_changed (GtkWidget *widget,
GtkStateType previous_state);
static void gtk_calendar_style_set (GtkWidget *widget,
widget_class->realize = gtk_calendar_realize;
widget_class->unrealize = gtk_calendar_unrealize;
widget_class->expose_event = gtk_calendar_expose;
- widget_class->draw_focus = gtk_calendar_draw_focus;
widget_class->size_request = gtk_calendar_size_request;
widget_class->size_allocate = gtk_calendar_size_allocate;
widget_class->button_press_event = gtk_calendar_button_press;
widget_class->enter_notify_event = gtk_calendar_enter_notify;
widget_class->leave_notify_event = gtk_calendar_leave_notify;
widget_class->key_press_event = gtk_calendar_key_press;
- widget_class->focus_in_event = gtk_calendar_focus_in;
- widget_class->focus_out_event = gtk_calendar_focus_out;
widget_class->style_set = gtk_calendar_style_set;
widget_class->state_changed = gtk_calendar_state_changed;
if (event->window == private_data->week_win)
gtk_calendar_paint_week_numbers (widget);
if (event->window == widget->window)
- gtk_widget_draw_focus (widget);
+ gtk_calendar_draw_focus (widget);
}
return FALSE;
if (private_data->week_win != NULL)
gtk_calendar_paint_week_numbers (widget);
- gtk_widget_draw_focus (widget);
+ gtk_calendar_draw_focus (widget);
}
static void
gtk_calendar_set_background (widget);
}
-static gint
-gtk_calendar_focus_in (GtkWidget *widget,
- GdkEventFocus *event)
-{
- GtkCalendar *calendar;
-
- g_return_val_if_fail (widget != NULL, FALSE);
- g_return_val_if_fail (GTK_IS_CALENDAR (widget), FALSE);
- g_return_val_if_fail (event != NULL, FALSE);
-
- calendar = GTK_CALENDAR (widget);
-
- GTK_WIDGET_SET_FLAGS (widget, GTK_HAS_FOCUS);
- gtk_widget_draw_focus (widget);
- gtk_calendar_paint_day (widget, calendar->focus_row, calendar->focus_col);
-
- return FALSE;
-}
-
static void
gtk_calendar_destroy (GtkObject *object)
{
(* GTK_OBJECT_CLASS (parent_class)->destroy) (object);
}
-static gint
-gtk_calendar_focus_out (GtkWidget *widget,
- GdkEventFocus *event)
-{
- GtkCalendar *calendar;
-
- g_return_val_if_fail (widget != NULL, FALSE);
- g_return_val_if_fail (GTK_IS_CALENDAR (widget), FALSE);
- g_return_val_if_fail (event != NULL, FALSE);
-
- calendar = GTK_CALENDAR (widget);
-
- GTK_WIDGET_UNSET_FLAGS (widget, GTK_HAS_FOCUS);
- gtk_widget_draw_focus (widget);
- gtk_calendar_paint_day (widget, calendar->focus_row, calendar->focus_col);
-
- return FALSE;
-}
-
static gint
gtk_calendar_key_press (GtkWidget *widget,
GdkEventKey *event)
static void gtk_check_button_class_init (GtkCheckButtonClass *klass);
static void gtk_check_button_init (GtkCheckButton *check_button);
-static void gtk_check_button_draw_focus (GtkWidget *widget);
static void gtk_check_button_size_request (GtkWidget *widget,
GtkRequisition *requisition);
static void gtk_check_button_size_allocate (GtkWidget *widget,
widget_class = (GtkWidgetClass*) class;
parent_class = gtk_type_class (gtk_toggle_button_get_type ());
- widget_class->draw_focus = gtk_check_button_draw_focus;
widget_class->size_request = gtk_check_button_size_request;
widget_class->size_allocate = gtk_check_button_size_allocate;
widget_class->expose_event = gtk_check_button_expose;
}
}
-static void
-gtk_check_button_draw_focus (GtkWidget *widget)
-{
- gint border_width;
-
- g_return_if_fail (widget != NULL);
- g_return_if_fail (GTK_IS_CHECK_BUTTON (widget));
-
- border_width = GTK_CONTAINER (widget)->border_width;
- gtk_widget_queue_clear_area (widget->parent,
- border_width + widget->allocation.x,
- border_width + widget->allocation.y,
- widget->allocation.width - 2 * border_width,
- widget->allocation.height - 2 * border_width);
-}
-
static void
gtk_check_button_size_request (GtkWidget *widget,
GtkRequisition *requisition)
widget_class->size_allocate = gtk_clist_size_allocate;
widget_class->focus_in_event = gtk_clist_focus_in;
widget_class->focus_out_event = gtk_clist_focus_out;
- widget_class->draw_focus = gtk_clist_draw_focus;
widget_class->style_set = gtk_clist_style_set;
widget_class->drag_begin = gtk_clist_drag_begin;
widget_class->drag_end = gtk_clist_drag_end;
gtk_signal_emit (GTK_OBJECT (clist), clist_signals[SELECT_ROW],
clist->focus_row, -1, event);
else
- gtk_widget_draw_focus (widget);
+ gtk_clist_draw_focus (widget);
}
else
- gtk_widget_draw_focus (widget);
+ gtk_clist_draw_focus (widget);
return FALSE;
}
GTK_WIDGET_UNSET_FLAGS (widget, GTK_HAS_FOCUS);
- gtk_widget_draw_focus (widget);
+ gtk_clist_draw_focus (widget);
clist = GTK_CLIST (widget);
if (GTK_WIDGET_HAS_FOCUS (clist) && clist->focus_row != clist->undo_anchor)
{
- gtk_widget_draw_focus (GTK_WIDGET (clist));
clist->focus_row = clist->undo_anchor;
- gtk_widget_draw_focus (GTK_WIDGET (clist));
+ gtk_widget_queue_draw (GTK_WIDGET (clist));
}
else
clist->focus_row = clist->undo_anchor;
widget_class->realize = gtk_entry_realize;
widget_class->unrealize = gtk_entry_unrealize;
- widget_class->draw_focus = gtk_entry_draw_focus;
widget_class->size_request = gtk_entry_size_request;
widget_class->size_allocate = gtk_entry_size_allocate;
widget_class->expose_event = gtk_entry_expose;
entry = GTK_ENTRY (widget);
if (widget->window == event->window)
- gtk_widget_draw_focus (widget);
+ gtk_entry_draw_focus (widget);
else if (entry->text_area == event->window)
{
gtk_entry_draw_text (GTK_ENTRY (widget));
g_return_val_if_fail (event != NULL, FALSE);
GTK_WIDGET_SET_FLAGS (widget, GTK_HAS_FOCUS);
- gtk_widget_draw_focus (widget);
+ gtk_entry_draw_focus (widget);
gtk_entry_queue_draw (GTK_ENTRY (widget));
GTK_ENTRY (widget)->need_im_reset = TRUE;
g_return_val_if_fail (event != NULL, FALSE);
GTK_WIDGET_UNSET_FLAGS (widget, GTK_HAS_FOCUS);
- gtk_widget_draw_focus (widget);
+ gtk_entry_draw_focus (widget);
gtk_entry_queue_draw (GTK_ENTRY (widget));
GTK_ENTRY (widget)->need_im_reset = TRUE;
GtkAllocation *allocation);
static void gtk_list_item_style_set (GtkWidget *widget,
GtkStyle *previous_style);
-static void gtk_list_item_draw_focus (GtkWidget *widget);
static gint gtk_list_item_button_press (GtkWidget *widget,
GdkEventButton *event);
static gint gtk_list_item_expose (GtkWidget *widget,
GdkEventExpose *event);
-static gint gtk_list_item_focus_in (GtkWidget *widget,
- GdkEventFocus *event);
-static gint gtk_list_item_focus_out (GtkWidget *widget,
- GdkEventFocus *event);
static void gtk_real_list_item_select (GtkItem *item);
static void gtk_real_list_item_deselect (GtkItem *item);
static void gtk_real_list_item_toggle (GtkItem *item);
widget_class->size_request = gtk_list_item_size_request;
widget_class->size_allocate = gtk_list_item_size_allocate;
widget_class->style_set = gtk_list_item_style_set;
- widget_class->draw_focus = gtk_list_item_draw_focus;
widget_class->button_press_event = gtk_list_item_button_press;
widget_class->expose_event = gtk_list_item_expose;
- widget_class->focus_in_event = gtk_list_item_focus_in;
- widget_class->focus_out_event = gtk_list_item_focus_out;
item_class->select = gtk_real_list_item_select;
item_class->deselect = gtk_real_list_item_deselect;
gdk_window_set_background (widget->window, &widget->style->base[GTK_WIDGET_STATE (widget)]);
}
-static void
-gtk_list_item_draw_focus (GtkWidget *widget)
-{
- g_return_if_fail (widget != NULL);
- g_return_if_fail (GTK_IS_LIST_ITEM (widget));
-
- gtk_widget_draw(widget, NULL);
-}
-
static gint
gtk_list_item_button_press (GtkWidget *widget,
GdkEventButton *event)
return FALSE;
}
-static gint
-gtk_list_item_focus_in (GtkWidget *widget,
- GdkEventFocus *event)
-{
- g_return_val_if_fail (widget != NULL, FALSE);
- g_return_val_if_fail (GTK_IS_LIST_ITEM (widget), FALSE);
- g_return_val_if_fail (event != NULL, FALSE);
-
- GTK_WIDGET_SET_FLAGS (widget, GTK_HAS_FOCUS);
- gtk_widget_draw_focus (widget);
-
- return FALSE;
-}
-
-static gint
-gtk_list_item_focus_out (GtkWidget *widget,
- GdkEventFocus *event)
-{
- g_return_val_if_fail (widget != NULL, FALSE);
- g_return_val_if_fail (GTK_IS_LIST_ITEM (widget), FALSE);
- g_return_val_if_fail (event != NULL, FALSE);
-
- GTK_WIDGET_UNSET_FLAGS (widget, GTK_HAS_FOCUS);
- gtk_widget_draw_focus (widget);
-
- return FALSE;
-}
-
static void
gtk_real_list_item_select (GtkItem *item)
{
GdkEventKey *event);
static gint gtk_notebook_focus_in (GtkWidget *widget,
GdkEventFocus *event);
-static gint gtk_notebook_focus_out (GtkWidget *widget,
- GdkEventFocus *event);
static void gtk_notebook_draw_focus (GtkWidget *widget);
static void gtk_notebook_style_set (GtkWidget *widget,
GtkStyle *previous_style);
widget_class->motion_notify_event = gtk_notebook_motion_notify;
widget_class->key_press_event = gtk_notebook_key_press;
widget_class->focus_in_event = gtk_notebook_focus_in;
- widget_class->focus_out_event = gtk_notebook_focus_out;
- widget_class->draw_focus = gtk_notebook_draw_focus;
widget_class->style_set = gtk_notebook_style_set;
container_class->add = gtk_notebook_add;
if (notebook->cur_page &&
gtk_widget_intersect (notebook->cur_page->tab_label,
&event->area, &child_area))
- gtk_widget_draw_focus (widget);
+ gtk_notebook_draw_focus (widget);
}
child_event = *event;
g_return_val_if_fail (event != NULL, FALSE);
GTK_NOTEBOOK (widget)->child_has_focus = FALSE;
- GTK_WIDGET_SET_FLAGS (widget, GTK_HAS_FOCUS);
- gtk_widget_draw_focus (widget);
-
- return FALSE;
-}
-
-static gint
-gtk_notebook_focus_out (GtkWidget *widget,
- GdkEventFocus *event)
-{
- g_return_val_if_fail (widget != NULL, FALSE);
- g_return_val_if_fail (GTK_IS_NOTEBOOK (widget), FALSE);
- g_return_val_if_fail (event != NULL, FALSE);
-
- GTK_WIDGET_UNSET_FLAGS (widget, GTK_HAS_FOCUS);
- gtk_widget_draw_focus (widget);
- return FALSE;
+ return (* GTK_WIDGET_CLASS (parent_class)->focus_in_event) (widget, event);
}
static void
GtkArg *arg,
guint arg_id);
static void gtk_range_destroy (GtkObject *object);
-static void gtk_range_draw_focus (GtkWidget *widget);
static void gtk_range_unrealize (GtkWidget *widget);
static gint gtk_range_expose (GtkWidget *widget,
GdkEventExpose *event);
GdkEventCrossing *event);
static gint gtk_range_leave_notify (GtkWidget *widget,
GdkEventCrossing *event);
-static gint gtk_range_focus_in (GtkWidget *widget,
- GdkEventFocus *event);
-static gint gtk_range_focus_out (GtkWidget *widget,
- GdkEventFocus *event);
static gint gtk_range_scroll_event (GtkWidget *widget,
GdkEventScroll *event);
static void gtk_range_style_set (GtkWidget *widget,
object_class->get_arg = gtk_range_get_arg;
object_class->destroy = gtk_range_destroy;
- widget_class->draw_focus = gtk_range_draw_focus;
widget_class->unrealize = gtk_range_unrealize;
widget_class->expose_event = gtk_range_expose;
widget_class->button_press_event = gtk_range_button_press;
widget_class->key_press_event = gtk_range_key_press;
widget_class->enter_notify_event = gtk_range_enter_notify;
widget_class->leave_notify_event = gtk_range_leave_notify;
- widget_class->focus_in_event = gtk_range_focus_in;
- widget_class->focus_out_event = gtk_range_focus_out;
widget_class->style_set = gtk_range_style_set;
class->slider_width = 11;
(* GTK_OBJECT_CLASS (parent_class)->destroy) (object);
}
-static void
-gtk_range_draw_focus (GtkWidget *widget)
-{
- g_return_if_fail (widget != NULL);
- g_return_if_fail (GTK_IS_RANGE (widget));
-
- if (GTK_WIDGET_DRAWABLE (widget))
- _gtk_range_draw_trough (GTK_RANGE (widget));
-}
-
static void
gtk_range_unrealize (GtkWidget *widget)
{
return TRUE;
}
-static gint
-gtk_range_focus_in (GtkWidget *widget,
- GdkEventFocus *event)
-{
- g_return_val_if_fail (GTK_IS_RANGE (widget), FALSE);
- g_return_val_if_fail (event != NULL, FALSE);
-
- GTK_WIDGET_SET_FLAGS (widget, GTK_HAS_FOCUS);
- gtk_widget_draw_focus (widget);
-
- return TRUE;
-}
-
-static gint
-gtk_range_focus_out (GtkWidget *widget,
- GdkEventFocus *event)
-{
- g_return_val_if_fail (GTK_IS_RANGE (widget), FALSE);
- g_return_val_if_fail (event != NULL, FALSE);
-
- GTK_WIDGET_UNSET_FLAGS (widget, GTK_HAS_FOCUS);
- gtk_widget_draw_focus (widget);
-
- return TRUE;
-}
-
static void
gtk_real_range_draw_trough (GtkRange *range)
{
widget_class->unrealize = gtk_text_unrealize;
widget_class->style_set = gtk_text_style_set;
widget_class->state_changed = gtk_text_state_changed;
- widget_class->draw_focus = gtk_text_draw_focus;
widget_class->size_request = gtk_text_size_request;
widget_class->size_allocate = gtk_text_size_allocate;
widget_class->expose_event = gtk_text_expose;
else if (event->count == 0)
{
TDEBUG (("in gtk_text_expose (focus)\n"));
- gtk_widget_draw_focus (widget);
+ gtk_text_draw_focus (widget);
}
return FALSE;
TDEBUG (("in gtk_text_focus_in\n"));
- GTK_WIDGET_SET_FLAGS (widget, GTK_HAS_FOCUS);
- gtk_widget_draw_focus (widget);
-
#ifdef USE_XIM
if (GTK_OLD_EDITABLE (widget)->ic)
gdk_im_begin (GTK_OLD_EDITABLE (widget)->ic, GTK_TEXT(widget)->text_area);
#endif
- draw_cursor (GTK_TEXT(widget), TRUE);
-
- return FALSE;
+ return (* GTK_WIDGET_CLASS (parent_class)->focus_in_event) (widget, event);
}
static gint
TDEBUG (("in gtk_text_focus_out\n"));
- GTK_WIDGET_UNSET_FLAGS (widget, GTK_HAS_FOCUS);
- gtk_widget_draw_focus (widget);
-
- undraw_cursor (GTK_TEXT(widget), TRUE);
-
#ifdef USE_XIM
gdk_im_end ();
#endif
-
- return FALSE;
+
+ return (* GTK_WIDGET_CLASS (parent_class)->focus_out_event) (widget, event);
}
static void
widget_class->focus_out_event = gtk_text_view_focus_out_event;
widget_class->motion_notify_event = gtk_text_view_motion_event;
widget_class->expose_event = gtk_text_view_expose_event;
- widget_class->draw_focus = gtk_text_view_draw_focus;
widget_class->drag_begin = gtk_text_view_drag_begin;
widget_class->drag_end = gtk_text_view_drag_end;
GtkTextView *text_view = GTK_TEXT_VIEW (widget);
GTK_WIDGET_SET_FLAGS (widget, GTK_HAS_FOCUS);
- gtk_widget_draw_focus (widget);
+ gtk_widget_queue_draw (widget);
if (text_view->cursor_visible && text_view->layout)
{
GtkTextView *text_view = GTK_TEXT_VIEW (widget);
GTK_WIDGET_UNSET_FLAGS (widget, GTK_HAS_FOCUS);
- gtk_widget_draw_focus (widget);
+ gtk_widget_queue_draw (widget);
if (text_view->cursor_visible && text_view->layout)
{
}
if (event->window == widget->window)
- gtk_widget_draw_focus (widget);
+ gtk_text_view_draw_focus (widget);
return TRUE;
}
GtkRequisition *requisition);
static void gtk_tree_item_size_allocate (GtkWidget *widget,
GtkAllocation *allocation);
-static void gtk_tree_item_draw_focus (GtkWidget *widget);
static void gtk_tree_item_paint (GtkWidget *widget,
GdkRectangle *area);
static gint gtk_tree_item_button_press (GtkWidget *widget,
GdkEventButton *event);
static gint gtk_tree_item_expose (GtkWidget *widget,
GdkEventExpose *event);
-static gint gtk_tree_item_focus_in (GtkWidget *widget,
- GdkEventFocus *event);
-static gint gtk_tree_item_focus_out (GtkWidget *widget,
- GdkEventFocus *event);
static void gtk_tree_item_forall (GtkContainer *container,
gboolean include_internals,
GtkCallback callback,
widget_class->realize = gtk_tree_item_realize;
widget_class->size_request = gtk_tree_item_size_request;
widget_class->size_allocate = gtk_tree_item_size_allocate;
- widget_class->draw_focus = gtk_tree_item_draw_focus;
widget_class->button_press_event = gtk_tree_item_button_press;
widget_class->expose_event = gtk_tree_item_expose;
- widget_class->focus_in_event = gtk_tree_item_focus_in;
- widget_class->focus_out_event = gtk_tree_item_focus_out;
widget_class->map = gtk_tree_item_map;
widget_class->unmap = gtk_tree_item_unmap;
}
}
-static void
-gtk_tree_item_draw_focus (GtkWidget *widget)
-{
- g_return_if_fail (widget != NULL);
- g_return_if_fail (GTK_IS_TREE_ITEM (widget));
-
- gtk_widget_draw(widget, NULL);
-}
-
static gint
gtk_tree_item_button_press (GtkWidget *widget,
GdkEventButton *event)
return FALSE;
}
-static gint
-gtk_tree_item_focus_in (GtkWidget *widget,
- GdkEventFocus *event)
-{
- g_return_val_if_fail (widget != NULL, FALSE);
- g_return_val_if_fail (GTK_IS_TREE_ITEM (widget), FALSE);
- g_return_val_if_fail (event != NULL, FALSE);
-
- GTK_WIDGET_SET_FLAGS (widget, GTK_HAS_FOCUS);
- gtk_widget_draw_focus (widget);
-
-
- return FALSE;
-}
-
-static gint
-gtk_tree_item_focus_out (GtkWidget *widget,
- GdkEventFocus *event)
-{
- g_return_val_if_fail (widget != NULL, FALSE);
- g_return_val_if_fail (GTK_IS_TREE_ITEM (widget), FALSE);
- g_return_val_if_fail (event != NULL, FALSE);
-
- GTK_WIDGET_UNSET_FLAGS (widget, GTK_HAS_FOCUS);
- gtk_widget_draw_focus (widget);
-
-
- return FALSE;
-}
-
static void
gtk_real_tree_item_select (GtkItem *item)
{
widget_class->leave_notify_event = gtk_tree_view_leave_notify;
widget_class->button_press_event = gtk_tree_view_button_press;
widget_class->button_release_event = gtk_tree_view_button_release;
- widget_class->draw_focus = gtk_tree_view_draw_focus;
widget_class->focus_in_event = gtk_tree_view_focus_in;
widget_class->focus_out_event = gtk_tree_view_focus_out;
UNMAP,
REALIZE,
UNREALIZE,
- DRAW_FOCUS,
- DRAW_DEFAULT,
SIZE_REQUEST,
SIZE_ALLOCATE,
STATE_CHANGED,
GdkEventKey *event);
static gint gtk_widget_real_key_release_event (GtkWidget *widget,
GdkEventKey *event);
+static gint gtk_widget_real_focus_in_event (GtkWidget *widget,
+ GdkEventFocus *event);
+static gint gtk_widget_real_focus_out_event (GtkWidget *widget,
+ GdkEventFocus *event);
static void gtk_widget_style_set (GtkWidget *widget,
GtkStyle *previous_style);
static void gtk_widget_direction_changed (GtkWidget *widget,
klass->unmap = gtk_widget_real_unmap;
klass->realize = gtk_widget_real_realize;
klass->unrealize = gtk_widget_real_unrealize;
- klass->draw_focus = NULL;
klass->size_request = gtk_widget_real_size_request;
klass->size_allocate = gtk_widget_real_size_allocate;
klass->state_changed = NULL;
klass->enter_notify_event = NULL;
klass->leave_notify_event = NULL;
klass->configure_event = NULL;
- klass->focus_in_event = NULL;
- klass->focus_out_event = NULL;
+ klass->focus_in_event = gtk_widget_real_focus_in_event;
+ klass->focus_out_event = gtk_widget_real_focus_out_event;
klass->map_event = NULL;
klass->unmap_event = NULL;
klass->window_state_event = NULL;
GTK_SIGNAL_OFFSET (GtkWidgetClass, unrealize),
gtk_marshal_VOID__VOID,
GTK_TYPE_NONE, 0);
- widget_signals[DRAW_FOCUS] =
- gtk_signal_new ("draw_focus",
- GTK_RUN_FIRST,
- GTK_CLASS_TYPE (object_class),
- GTK_SIGNAL_OFFSET (GtkWidgetClass, draw_focus),
- gtk_marshal_VOID__VOID,
- GTK_TYPE_NONE, 0);
- widget_signals[DRAW_DEFAULT] =
- gtk_signal_new ("draw_default",
- GTK_RUN_FIRST,
- GTK_CLASS_TYPE (object_class),
- GTK_SIGNAL_OFFSET (GtkWidgetClass, draw_default),
- gtk_marshal_VOID__VOID,
- GTK_TYPE_NONE, 0);
widget_signals[SIZE_REQUEST] =
gtk_signal_new ("size_request",
GTK_RUN_FIRST,
}
}
-/**
- * gtk_widget_draw_focus:
- * @widget: a #GtkWidget
- *
- * This function is only for use in widget implementations. Invokes the
- * "draw_focus" virtual method/signal on @widget, causing the focus
- * rectangle to be drawn or undrawn according to the focus state of
- * the widget. Normally called from widget implementations in the
- * "focus_in_event" and "focus_out_event" handlers.
- *
- **/
-void
-gtk_widget_draw_focus (GtkWidget *widget)
-{
- g_return_if_fail (widget != NULL);
- g_return_if_fail (GTK_IS_WIDGET (widget));
-
- gtk_signal_emit (GTK_OBJECT (widget), widget_signals[DRAW_FOCUS]);
-}
-
-/**
- * gtk_widget_draw_default:
- * @widget: a #GtkWidget
- *
- * This function is only for use in widget implementations. Invokes the
- * "draw_default" virtual method/signal on a widget, causing it to
- * draw the default rectangle (indicating that the widget is
- * the default widget, i.e. the one that's activated by pressing
- * the enter key, generally).
- **/
-void
-gtk_widget_draw_default (GtkWidget *widget)
-{
- g_return_if_fail (widget != NULL);
- g_return_if_fail (GTK_IS_WIDGET (widget));
-
- gtk_signal_emit (GTK_OBJECT (widget), widget_signals[DRAW_DEFAULT]);
-}
-
/**
* gtk_widget_size_request:
* @widget: a #GtkWidget
return handled;
}
+static gint
+gtk_widget_real_focus_in_event (GtkWidget *widget,
+ GdkEventFocus *event)
+{
+ GTK_WIDGET_SET_FLAGS (widget, GTK_HAS_FOCUS);
+ gtk_widget_queue_draw (widget);
+
+ return FALSE;
+}
+
+static gint
+gtk_widget_real_focus_out_event (GtkWidget *widget,
+ GdkEventFocus *event)
+{
+ GTK_WIDGET_UNSET_FLAGS (widget, GTK_HAS_FOCUS);
+ gtk_widget_queue_draw (widget);
+
+ return FALSE;
+}
+
/**
* gtk_widget_event:
* @widget: a #GtkWidget
void (* unmap) (GtkWidget *widget);
void (* realize) (GtkWidget *widget);
void (* unrealize) (GtkWidget *widget);
- void (* draw_focus) (GtkWidget *widget);
- void (* draw_default) (GtkWidget *widget);
void (* size_request) (GtkWidget *widget,
GtkRequisition *requisition);
void (* size_allocate) (GtkWidget *widget,
void gtk_widget_draw (GtkWidget *widget,
GdkRectangle *area);
#endif /* GTK_DISABLE_DEPRECATED */
-void gtk_widget_draw_focus (GtkWidget *widget);
-void gtk_widget_draw_default (GtkWidget *widget);
void gtk_widget_size_request (GtkWidget *widget,
GtkRequisition *requisition);
void gtk_widget_size_allocate (GtkWidget *widget,
if (window->focus_widget != window->default_widget ||
!GTK_WIDGET_RECEIVES_DEFAULT (window->default_widget))
GTK_WIDGET_UNSET_FLAGS (window->default_widget, GTK_HAS_DEFAULT);
- gtk_widget_draw_default (window->default_widget);
+ gtk_widget_queue_draw (window->default_widget);
}
window->default_widget = default_widget;
if (window->focus_widget == NULL ||
!GTK_WIDGET_RECEIVES_DEFAULT (window->focus_widget))
GTK_WIDGET_SET_FLAGS (window->default_widget, GTK_HAS_DEFAULT);
- gtk_widget_draw_default (window->default_widget);
+ gtk_widget_queue_draw (window->default_widget);
}
}
}